Software defined networks (SDNs) feature an emerging class of network architectures called forwarding architectures. These architectures split control plane decision-making off from data plane forwarding. In doing so, they enable custom programmability and centralization of the control plane while allowing for commodity high-throughput, high-fanout data plane forwarding elements.
However, debugging operational SDNs can be a daunting task due to their size, distributed state, and high complexity in the controller software. The debugging tool set available to network operators is limited. Existing debugging solutions use online packet or flowtable dumping in SDN switches to determine the precise routing paths that data packets took in the network, each of which has its own drawbacks.